package cn.dogger.easyboot.designMode.common;

import cn.dogger.easyboot.designMode.handler.*;

/**
 * 工厂模式
 * 定义：定义了一个创建对象的类，由这个类来封装实例化对象的行为。
 * @author dogger
 * 2022/7/17 14:12
 */
@SuppressWarnings("ALL")
public class 奶茶店 {
    /**
     * 例子一
     * 定义接口类，由FactoryModeHandler，FactoryModeHandler2，FactoryModeHandler3实现该接口，
     * 根据判断初始化相应对象
     * @param i
     */
    private void demo1(Integer i){
        菜单 api = null;
        switch (i){
            case 1 -> api = new 珍珠奶茶();
            case 2 -> api = new 卡布奇诺();
            case 3 -> api = new 杨枝甘露();
            default -> System.out.println("111");
        }
    }
}

@SuppressWarnings("ALL")
class 奶茶店分店1 extends 美团线上点餐 {

    @Override
    public 菜单 顾客点单(String i) {
        菜单 api = null;
        switch (i){
            case "珍珠奶茶" -> api = new 珍珠奶茶();
            case "杨枝甘露" -> api = new 杨枝甘露();
            default -> System.out.println("没有，滚");
        }
        return api;
    }
}
@SuppressWarnings("ALL")
class 奶茶店分店2 extends 美团线上点餐 {

    @Override
    public 菜单 顾客点单(String i) {
        菜单 api = null;
        switch (i){
            case "珍珠奶茶" -> api = new 珍珠奶茶();
            case "杨枝甘露" -> api = new 杨枝甘露();
            default -> System.out.println("没有，滚");
        }
        return api;
    }
}

class Main{
    public static void main(String[] args) {
        美团线上点餐 factory = new 奶茶店分店2();
        factory.顾客点单("卡布奇诺");

    }
}